按位运算<<,>>,>>>的算法?

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:42:55
按位运算<<,>>,>>>是怎样算,请问能具体说明吗?我看书看不懂,请个位多多赐教!
```谢谢!
一楼说得比书本更抽象!不过也谢拉!```还有朋友能讲得详细点吗?<<和>>>我可以理解,但>>就不明白里面“左补符号位”是什么意思!
请问能分别说出下面的得值吗?
11111111 11111111 1111111 1111111<<1 既是都少?是11111111 11111111 1111111 1111110 吗?
11111111 11111111 1111111 1111111>>>1 既是多少?是01111111 11111111 1111111 1111111 吗?
01111111 11111111 1111111 1111111>>1 既是多少?为什么?
11111111 11111111 1111111 1111111>>1 既是多少?为什么?

>>是平常的右移。对于负数,它不移最高位符号位。
>>>是“无符号右移”。它是不管三七二十一的按照移位的方法来移位。

11111111 11111111>>>1就是01111111 11111111

11111111 11111111>>1是10111111 11111111

<<左移运算符,x<<n,相当于x乘以2的x次方
>>右移运算符,x>>n,相当于x除以2的x次方
>>>没见过......

这些操作是比较低层的,一般不太用,不过用的好的话,会有高效率.
比如说97的二进制为01100001
<<左移 变为11000010
>>右移 变为00110000
如果1不移出的话
左移一位 相当于乘以2